package com.hdy.web.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.util.StringUtils;
import com.hdy.web.pojo.OrderInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Slf4j
public class OrderInfoListener extends AnalysisEventListener<OrderInfo> {
    // 定义一个全局的读取header的map，方便其他地方使用改数据，当然要是你存进数据库那就更方便取了
    private final Map<Integer, String> orderHeaderMap = new HashMap<>();
    // excel主数据
    private List<OrderInfo> orderInfoList = new ArrayList<>();

    /**
     * @param orderInfo
     * @param analysisContext
     */
    @Override
    public void invoke(OrderInfo orderInfo, AnalysisContext analysisContext) {
        orderInfoList.add(orderInfo);
    }

    /**
     * @param analysisContext
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        log.info("已读取完成所有数据!");
    }
    // excel头部数据
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        // 存到全局的map中
        orderHeaderMap.putAll(headMap);
    }
    public Map<Integer, String> getOrderInfoHeaderMap() {
        return orderHeaderMap;
    }
    public List<OrderInfo> getOrderInfoMap() {
        return orderInfoList;
    }
}
